home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 147
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan).7z
/
Gekkan Dennou Club - 2000.8 Vol. 147 (Japan) (Track 1).bin
/
tools
/
rb
/
jlcd100.lzh
/
TNB_FSW
/
CLUNCG00.Lzh
/
CLUNCHG.c
next >
Wrap
Text File
|
1996-06-12
|
3KB
|
151 lines
//#include <TNB.H>
#include <CDC_CLIB.H>
int main(argc,argv)
int argc;
char **argv;
{
int i,j,m,n,x,y,z;
int ol,oll,ll;
int cl=-1; //目的 LUN
int ct1=-1; //目的 MSF 総演奏時間
int ct2=-1; //目的 MSF 1曲目の演奏時間
char *arg;
struct CDC_TRACKS_PTR *CTP;
struct CDC_ATRACK_PTR *CAP;
printf("X68k CDC LUN CHAINGER Version 0.00 Copyright 1996 TNB製作所\n");
if ( argc==1 ){
help();
return(0);
}
/* オプション解析処理 */
for(j=1;j<argc;j++){
arg=argv[j];
if( arg[0] == '-' || arg[0] == '/' ){
switch(arg[1]|0x20){
case('l'):
i=(arg[2]-'0');
if ( i<0 || i>7 ){
printf("LUN指定が範囲外です\n");
return(-1);
}
cl=i;
break;
case('t'):
i=(arg[2]-'0');
if ( i<1 || i>8 ){
printf("LUN指定が範囲外です\n");
return(-1);
}
cl=(i-1);
break;
case '?':
case 'h':
default:
help();
return(0);
}
} else {
/* MSFチェック */
int mm,ss,ff;
char buf[16];
i=sscanf( &arg[0],"%d%1s%d%1s%d",&mm,buf,&ss,buf,&ff );
if ( i!=5 ){
printf("スイッチが異常です\n");
return(-1);
}
i= mm*0x10000 + ss*0x100 + ff;
if ( ct1<0 ){
//目的 MSF 総演奏時間
ct1=i;
} else if ( ct2<0 ){
//目的 MSF 1曲目の演奏時間
ct2=i;
} else {
printf("time 指定が多すぎます\n");
return(-1);
}
}
}
// printf("cl=%d,ct1=%d,ct2=%d\n",cl,ct1,ct2);
if ( CDC_CHK()==0 ){
printf("CDC.x が常駐していません\n");
return(-1);
}
if ( cl<0 && ct1<0 && ct2<0 ){
printf("指定がありません\n");
return(-1);
}
ol=CDC_CHGLUN( -1 );
oll=ol;
if ( ol==100 || ol<0 )
ol=0; //現在の LUN
if ( cl>=0 ){
//トレイ変更!
i=CDC_CHGLUN(cl);
if ( i<0 ){
printf("CDC_CHGLUN でエラーが出ました\n");
return(-1);
}
if ( oll==cl )
printf("トレイはそのままです。\n");
else printf("トレイを切り換えました。\n");
return(0);
}
for(ll=0;ll<=7;ll++){
if ( CDC_CHGLUN( ll )<0 ){
printf("CHGLUNでエラー\n");
continue;
}
CTP = CDC_TRACKS();
if ( (CTP->CDLONG)!=ct1 ){
printf("総演奏時間不一致\n");
continue;
}
if ( ct2>=0 ){
CAP= CDC_ATRACK(1);
if ( ((CAP->LONG)&0x00FFFFFF)!=ct2 ){
printf("1曲目の演奏時間不一致\n");
continue;
}
}
if ( oll==ll )
printf("トレイはそのままです。\n");
else printf("トレイを切り換えました。\n");
return(0);
}
printf("目的の総演奏時間の CD がありませんでした\n");
CDC_CHGLUN( ol );
return(1);
}
/**************************
ヘルプ
*************************/
void help()
{
printf(
"\n"
"使用法: CLUNCHG [time1[ time2]] | [switch]\n"
"\n"
" [time ]\n"
" time1 は 目的の CD の総演奏時間(MSF表記)。\n"
" time2 は 目的の CD の1曲目の演奏時間。省略出来ます(MSF表記)。\n"
" MSF表記= 分:秒:セクタ。例えば 27分11秒11 なら 27:11:11\n"
"\n"
" [switch]\n"
" /L[n] ・・・・・・・ LUN n に切り換えます。\n"
" /T[n] ・・・・・・・ TRAY n に切り換えます。\n"
"\n"
" [EXITCODE] 0: 正常終了\n"
" 1: 目的の総演奏時間の CD がなかった\n"
" -1: スイッチエラー\n"
"\n"
);
}